1. Field of the Invention
This invention pertains to methods and devices for enabling off-line programming of robot tasks. More particularly, the present invention relates to a method of mapping and correcting for robot inaccuracy.
2. Prior Art
Robot mechanisms are being increasingly used within the manufacturing industry for performing repetitive tasks in an assembly line configuration. In recent years much emphasis has been placed on robot off-line programming. The benefits of a true off-line system are substantial. Off-line programming and robot task simulation allow the user to verify robot tasks before purchasing costly equipment, thus insuring that the proper robot has been chosen for the task.
When several robots are to perform the same or similar task, off-line programming allows the task to be planned once, with the resulting program being applied to each separate robot. Minor changes in a robot's program are then easily handled without the customary down-time of on-line programming. When properly coupled with robot sensor systems, off-line programming can put the flexibility into robot workcells that has long been promised, but seldom realized.
Such flexibility could allow robot systems to respond to task operations that have heretofore been uneconomical such as "Parts on Demand" manufacturing schemes and random part presentations. If parts are allowed to arrive at robot workcells with random position and/or orientation, much of the need for costly jigs and fixturing could be eliminated. Such fixturing is not only expensive, but very time consuming. It represents one of the major hurdles against making robot workcells flexible.
Although off-line programming offers many benefits, industry has been slow to adopt this method of workcell operation. A major reason for minimal progress has been the inadequacy of compensation and control of robot inaccuracy. Commercial off-line programming packages show beautifully animated models of robot workcells simulated on engineering graphics workstations, but when the final product is down-loaded to the robot workcell, the robot is unable to perform the desired task with sufficient accuracy to be useful. The result is that, although the logic of a robot program can be developed off line, the actual robot configurations must be retaught on-line in a traditional teach pendant mode.
To further compound the problem, some robot configurations simply cannot be taught with a teach pendant system. An example of such a configuration is the placement of a part relative to some established datum but where no physical markings are available to guide the robot programmer. In this instance, the ability of the robot to move accurately is imperative to the ability of the robot to perform the task.
An understanding of the problems of accuracy and repeatability will be helpful for an appreciation of the solution presented by the invention disclosed herein. The concept of "repeatability" centers on the ability of a robot to move to the same position time after time, always within acceptable tolerances. "Accuracy", on the other hand, is the ability to directly move to a desired position upon an absolute command. By way of illustration, a repeatable archer will always shoot arrows in a very tight pattern on his target. However, this repeatability will be of little value unless that tight pattern is accurately near the bullseye.
Quality robot mechanisms are generally very repeatable in that they can consistently retrace movement patterns. Unfortunately, most robots are inherently inaccurate. This inaccuracy may be categorized in four major areas:
1. Robot technical imperfections PA0 2. Robot tool calibration error PA0 3. Rigid body error PA0 4. Robot tip deflections due to load
The technical imperfections stem from both the manufacturing processes resulting in tolerance stackup, joint misalignments, etc., and from natural wear of mechanical parts such as bearings. This is controlled by careful machine and design work. Robot tool calibration error is the result of not knowing where a robot's tool control frames (referred to herein as the TCF) are located relative to the robot's link frame. This is discussed in greater detail hereafter.
The third category of rigid body error is not really robot inaccuracy, but since the resulting error is the same, it is often grouped with robot inaccuracy. It is actually the error associated with not knowing the exact location of the parts that the robot is to operate on relative to the robot's base frame. The final category of "tip deflections" is obviously a function of load control and is controlled by task operation planning and engineering design of the robot load capacity.
The traditional solution to the inaccuracy issue is the teach pendant. The teach pendant circumvents the inaccuracy issue by relying on the inherent repeatability of robots. When a robot is taught a configuration using a teach pendant, it usually stores the encoder values of each joint motor at the desired robot configuration (a measurement of how many revolutions the motor has made from some known zero position). To return to that configuration, the robot need only command each motor to return to those saved encoder values. The robot need not even know where its tool is located in space, nor the part. Consequently, even inaccurate robots are often very repeatable.
However, teach pendant has little flexibility. If the robot is able to return to its exact prior position, but the part has not been positioned exactly, the robot may be useless. Accordingly, when a robot is programmed off-line, the luxury of a teach pendant is lost. Instead of repeatability , the programmer must now rely on accuracy. At first this may appear to be a great liability, and indeed has been a complication for off-line programming; however, development of a method to command robot accurately in an off-line mode can quickly convert this liability to an asset.
An earlier attempt to resolve this "accuracy" problem associated with tool calibration was developed by several of the present inventors and is disclosed in U.S. Pat. No. 4,831,549. In addition to giving a more complete review of prior art robot programming (incorporated herein by reference), this patent taught the use of a pointer tool as the solution to accurate calibration for the location and orientation of tools and sensors attached to the robot. The method involved defining a relationship between the last joint frame LJF and the pointer tool. A stylus associated with the tool was carefully lined up with the z axis of the LJF. The stylus was then moved to a known feature such as a grid marking on a template. This was identified as point one. The position of the robot with the stylus at this location was then recorded. Each tool to be calibrated was then moved to this exact position at point one and the respective robot configurations were again recorded. The difference between the stylus position and the respective tool positions provided the offset values to correct inaccuracy. Multiple points were used to develop a statistical average of these x and y offsets. The z axis was likewise measured by determining tool height.
These methods for tool and sensor calibration were demonstrated to work, even in the presence of robot inaccuracy and operator visual positioning error, due to the statistical method applied. The disadvantages of the previous technology are that it is tedious and time consuming, and is subject to the operator's visual acuity, which limits its application in the manufacturing environment. To obtain good statistical accuracy, ten to twenty points would have to be processed. This involved meticulously jogging or moving the stylus to these respective exact points on the template, so that the stylus and point were in exact alignment. Then each of the tools had to be similarly moved, with robot configurations appropriately recorded. This method required hours of tedious effort, and could take days where multiple tools required calibration.
What was needed therefore, was an improved method and device which did not require the tedious alignment of a stylus with a calibration feature such as the referenced point on a template, but instead would involve a simple system of movements without the need for critical alignment.